<?php
/*
html内容转义并返回,可以在html的标签内容和标签属性值处,输出数据
因为调用者太多,太常用而被简写
$html = '<h1>'.h($title).'</h1>';
$html = '<a href="'.h($url).'">123</a>';
在标签属性值输出时,必须使用引号把属性值括起来
*/
if (!function_exists('h')){
    function h($string){
        return TbfSecurity::XssHtmlBodyEncode($string);
    }
}
/*
html内容转义并echo,可以在html的标签内容和标签属性值处,输出数据
因为调用者太多,太常用而被简写
<h1><?php eh($title);?></h1>
<a href="<?php eh($url);?>">123</a>
在标签属性值输出时,必须使用引号把属性值括起来
*/
if (!function_exists('eh')){
    function eh($string){
        echo TbfSecurity::XssHtmlBodyEncode($string);
    }
}

/*
html上的json的转义并echo,可以向html模板传递json数据.
<script>
var initData = <?php exje($data); ?>;
</script>
echo xss json encode 因为太常用而被简写exje
*/
function exje($obj){
    echo TbfSecurity::XssJsonEncode($obj);
}

function xje($obj){
    return TbfSecurity::XssJsonEncode($obj);
}

/*
url的参数值转义并返回,可以在url中输出数据,也可以在html的url中输出数据
$url = 'http://www.somesite.com?test='.xupve($test);
xss url param value encode因为太常用而被简写xupve
*/
function xupve($s){
    return TbfSecurity::XssUrlParamValueEncode($s);
}
/*
url的参数值转义并echo,可以在url中输出数据
<a href="http://www.somesite.com?test=<?php exupve($test); ?>">link</a >
echo xss url param value encode因为太常用而被简写exupve
*/
function exupve($s){
    echo TbfSecurity::XssUrlParamValueEncode($s);
}

/////////////////////xss过滤部分 向前兼容
function ejson($obj){
    echo TbfSecurity::XssJsonEncode($obj);
}
function urlv($s){
    return TbfSecurity::XssUrlParamValueEncode($s);
}
function eurlv($s){
    echo TbfSecurity::XssUrlParamValueEncode($s);
}


//过滤html的内容
function TbfHTMLPurifier($s){
    $tmpPath = TbfConfig::$TmpPath.'/HTMLPurifier';
    @mkdir($tmpPath);
    $p = new HTMLPurifier(array('Cache.SerializerPath'=>$tmpPath));
    return $p->purify($s);
}

//引入一个模板,传入数据,并且输出到浏览器(或标准输出),请在模板中用这个引用其他模板
function TbfView($tplName,$d=array()){
    TbfTemplate::RenderAndEcho($tplName,$d);
}

//翻译文本
function TbfTran($key){
    return TbfI18n::tran($key);
}

/*
//模板文件包含,第1个是模板名称,第2个是这个模板里面的数据
//模板中的 "$d" 是传入当前模板的数据,"$templateName" 是当前模板的名称
function tInclude($templateName,$d = array()){
    $__selfTemplatePath = TbfTemplate::getPathByName($templateName);
    require $__selfTemplatePath;
}
function tData(){
    return TbfTemplate::$RootTemplateData;
}

function tSetData($key,$value){
    TbfTemplate::$RootTemplateData[$key] = $value;
}
 */


